const setInfo = require('../const').SET_INFO;


const formatTime = date => {
  const year = date.getFullYear()
  const month = date.getMonth() + 1
  const day = date.getDate()
  const hour = date.getHours()
  const minute = date.getMinutes()
  const second = date.getSeconds()

  return `${[year, month, day].map(formatNumber).join('/')} ${[hour, minute, second].map(formatNumber).join(':')}`
}

const formatNumber = n => {
  n = n.toString()
  return n[1] ? n : `0${n}`
}

/**
 * function: 60秒内（刚刚），60秒至60分钟（**分钟前），1小时至24小时（**小时前），1天至15天（**天前），其他为正常日期显示
 * @number   時間戳
 */
function formatMsgTime(number) {
    var dateTime = new Date(number); // 将传进来的字符串或者毫秒转为标准时间
    var Y = dateTime.getFullYear(); // 年
    var M = dateTime.getMonth() + 1; // 月
    var D = dateTime.getDate(); // 日
    var h = dateTime.getHours(); // 时
    var m = dateTime.getMinutes(); // 分
    var millisecond = dateTime.getTime(); // 将当前编辑的时间转换为毫秒
    var now = new Date(); // 获取本机当前的时间
    var nowNew = now.getTime(); // 将本机的时间转换为毫秒
    var milliseconds = 0;
    var numberStr;
    milliseconds = nowNew - millisecond;
    if (milliseconds <= 1000 * 60 * 1) { // 小于一分钟展示为刚刚
      numberStr = '刚刚'
    } else if (1000 * 60 * 1 < milliseconds && milliseconds <= 1000 * 60 * 60) { // 大于一分钟小于一小时展示为分钟
      numberStr = Math.round((milliseconds / (1000 * 60))) + '分钟前'
    } else if (1000 * 60 * 60 * 1 < milliseconds && milliseconds <= 1000 * 60 * 60 * 24) { // 大于一小时小于一天展示为小时
      numberStr = Math.round(milliseconds / (1000 * 60 * 60)) + '小时前'
    } else if (1000 * 60 * 60 * 24 < milliseconds && milliseconds <= 1000 * 60 * 60 * 24 * 15) { // 大于一天小于十五天展示位天
      numberStr = Math.round(milliseconds / (1000 * 60 * 60 * 24)) + '天前'
    } else if (milliseconds > 1000 * 60 * 60 * 24 * 15 && Y === now.getFullYear()) {
    //   numberStr = M + '-' + D + ' ' + h + ':' + m
    numberStr = M + '-' + D 

    } else {
    //   numberStr = Y + '-' + M + '-' + D + ' ' + h + ':' + m
    numberStr = Y + '-' + M + '-' + D 
    }
    return numberStr
  }

/**
 * function: 時間戳轉日期
 * @number   時間戳
 * @type     格式（1為年-月-日 時-分-秒，2為年-月-日）
 */
function toDate(number, type) {
    var date = new Date(number);
    var Y = date.getFullYear();
    var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1);
    var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
    var h = date.getHours() < 10 ? '0' + date.getHours() : date.getHours();
    var m = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes();
    var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
    if (type == '1') {
      return Y + '-' + M + '-' + D + ' ' + h + ':' + m + ':' + s;
    } else if (type == '2') {
      return Y + '-' + M + '-' + D;
    }
  }


function getUserInfo(){
    var userInfo = wx.getStorageSync('userInfo');
    let obj = {};
    if(userInfo == "" || userInfo == null){
        obj.nickname = "游客";
        obj.id = "123465";
        obj.head_img = "https://taluo.whyimingkeji.com/resources/static/images/head_img.png?v=1.3";
        obj.user_auth = false ; // 0是未登录 1是登录
    }else{
        let timeS = JSON.parse(userInfo)
        obj = JSON.parse(userInfo);
        obj.user_auth = true;
        // obj.expiration_time = toDate(timeS.expiration_time,2)
    }  
    return obj;
     
}


function changeSource(data){
    var source = [];
    for(var i = 0; i < data.length; i++){
        var sourceLise = {};
        sourceLise['总答题数'] = data[i].total_count;
        sourceLise['正确答题数'] = data[i].z_total_count;
        sourceLise['答题时间/(分)'] = data[i].total_time;
        sourceLise.product = data[i].day;
        source.push(sourceLise)
    }
    // console.log(source);
    return source;
}

//传source的值 
function getEchatrsConfig(source){
  var option = {};
  return option = {
    tooltip: {
      trigger: 'axis',
    //   axisPointer: { type: 'cross' }
    },
    grid: {
      left: 10,
      containLabel: true,
      bottom: 0,
      top: 45,
      right: 10,
    },
    legend: {},
    dataset: {
      dimensions: ['product','总答题数','正确答题数', '答题时间/(分)'],
      source: source
    },
    xAxis: {
      type: 'category',
      axisLine: {//x轴线的颜色以及宽度
        show: true,
        lineStyle: {
            color: "#fff",
            }
        },
        axisLabel: {//x轴文字的配置
            show: true,
            textStyle: {
                color: "#fff",
            }
        }
    },
    yAxis: [
      { type: 'value',
        //name:"题",//y轴上方的单位
        // nameTextStyle:{//y轴上方单位的颜色
        //     color:'#fff'  
        // },
        axisLabel: {//y轴文字的配置
            textStyle: {
                color: "#fff",
                margin: 15
            },
            // formatter: '{value} %'//y轴的每一个刻度值后面加上‘%’号
        }, 
        axisLine: {//y轴线的颜色以及宽度
            show: false,
            lineStyle: {
                color: "#fff",
                width: 0,
                type: "solid"
            },
        },
      },
    ],
    series: [
      { type: 'bar',color: 'rgb(251, 118, 123)'},
      { type: 'bar',color:'#ea7e53',},
      { type: 'line',color:'#fceb78'}
    ],
    
  }
}

//返回页面
function backToPrevClick(url){
    wx.switchTab({
      url: url,
    })
    // wx.navigateBack({
    //     delta: 1
    // })
}

/**
 * 对象转URL
 */
function urlEncode(data){
    var _result = [];
    for (var key in data) {
        var value = data[key];
        if (value.constructor == Array) {
        value.forEach(_value => {
            _result.push(key + "=" + _value);
        });
        } else {
        _result.push(key + '=' + value);
        }
    }
    return _result.join('&');
}


/*获取当前页url*/
const getCurrentPageUrl=()=>{
    let pages = getCurrentPages()    //获取加载的页面
    let currentPage = pages[pages.length-1]    //获取当前页面的对象
    let url = currentPage.route    //当前页面url
    return url
}
/*获取当前页参数*/
const getCurrentPageParam=()=>{
    let pages = getCurrentPages()    //获取加载的页面
    let currentPage = pages[pages.length-1]    //获取当前页面的对象
    let options = currentPage.options    //如果要获取url中所带的参数可以查看options
    return options
}

/**
 * @param {tel} 验证手机号
 */

 function checkPhone(e){
  var tel = e.detail.value;
  if (!(/^1[34578]\d{9}$/.test(phone))) {
      this.setData({
          ajaxPhonetrue: false
      })
      if(phone.length >= 11) {
          wx.showToast({
          title: '手机号有误',
          icon: 'success',
          duration: 2000
          })
      }
  }else{
      this.setData({
          ajaxPhonetrue: true
      })
  }
}

/*
  共用分享方法
  share
  imageUrl == null 自动获取首页图 || imageUrl === "" 自动获取默认分享图
*/ 

function wx_share(title = '',path = '/pages/index/index', imageUrl = null,share_route_obj = {}){
  if(share_route_obj != {}){
    path = path + '?' + urlEncode(share_route_obj)
  }
  if(imageUrl === ""){
    imageUrl = setInfo.share_obj.imageUrl
  }
  if(title == ""){
    title = setInfo.share_obj.title
  }
  
  return {
    title:title,
    path:path,
    imageUrl:imageUrl
  }

}

function get_url(){
    let pages = getCurrentPages();
    pages = pages[pages.length-1].route;
    return pages
}

module.exports = {
  formatTime,
  getUserInfo,
  getEchatrsConfig,
  changeSource,
  backToPrevClick,
  getCurrentPageUrl,
  getCurrentPageParam,
  urlEncode,
  toDate,
  formatMsgTime,
  checkPhone,
  wx_share,
  get_url
}
